Semiconductor memory is widely used in various electronic devices such as mobile computing devices, mobile phones, solid-state drives, digital cameras, personal digital assistants, medical electronics, servers, and non-mobile computing devices. Semiconductor memory may comprise non-volatile memory or volatile memory. A non-volatile memory device allows information to be stored or retained even when the non-volatile memory device is not connected to a source of power (e.g., a battery). Examples of non-volatile memory include flash memory (e.g., NAND-type and NOR-type flash memory), Electrically Erasable Programmable Read-Only Memory (EEPROM), ferroelectric memory (e.g., FeRAM), magnetoresistive memory (e.g., MRAM), and phase change memory (e.g., PCM). In recent years, both volatile and non-volatile memory devices have been scaled in order to reduce the cost per bit. However, as process geometries shrink, many design and process challenges are presented. These challenges include increased variability in memory cell I-V characteristics over process, voltage, and temperature variations and increased susceptibility to chip-level soft errors.
Real numbers may be represented according to the IEEE 754 floating-point standard using 16 bits (half precision), 32 bits (single precision), or 64 bits (double precision). In one implementation, referring to FIG. 1, a floating-point number 10 has a binary representation in which one bit is used for the sign 12, “e” bits are used for an exponent 14, and “m” bits are used for a mantissa 16. Thus, the floating-point number 10 may be represented by a string of e+m+1 bits. This string of bits may be stored using a semiconductor memory and processed using a digital computer or processor in communication with the semiconductor memory.